package com.ssy.lingxi.member.merchant.model.vo.validate.response;

import com.ssy.lingxi.member.merchant.handler.annotation.BusinessCategoryInvoiceTypeAnnotation;
import com.ssy.lingxi.member.merchant.handler.annotation.PaymentTypeAnnotation;
import com.ssy.lingxi.member.merchant.handler.annotation.PurchaseContractPayTypeAnnotation;
import com.ssy.lingxi.member.merchant.handler.annotation.SettlementDocumentsAnnotation;
import com.ssy.lingxi.member.merchant.model.vo.validate.request.BusinessCategoryDetailVO;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 会员主营品类查询返回VO
 * @author 万宁
 * @version 2.0.0
 * @date 2021-05-25
 */
@Data
public class BusinessCategoryQueryVO implements Serializable {
    private static final long serialVersionUID = 5949217915857687190L;

    /**
     * 品类信息id
     */
    private Long id;

    /**
     * 品类列表
     */
    private List<BusinessCategoryDetailQueryVO> details;

    /**
     * 结算方式，1-现结，2-账期(按天), 3-账期(按月)，4-月结
     */
    private Integer payType;

    /**
     * 结算方式名称
     */
    private String payTypeName;

    /**
     * 月， 结算方式为账期(按月)时大于0
     */
    private Integer month;

    /**
     * 每月几号，结算方式为“账期(按月)” 或 “月结” 时大于0
     */
    private Integer monthDay;

    /**
     * 天，结算方式为账期(按天)时大于0
     */
    private Integer days;

    /**
     * 发票类型，1-增值税专用发票，2-普通发票，3-机动车专用发票，4-机打发票，5-定额发票
     */
    private Integer invoiceType;

    /**
     * 发票类型名称
     */
    private String invoiceTypeName;

    /**
     * 税点，百分比的分子部分
     */
    private String taxPoint;

    /**
     * 预付款：0:不需预付 1：需要预付
     */
    private Integer advanceCharge;

    /**
     * 预付款名称
     */
    private String advanceChargeName;

    /**
     * 结算单据枚举
     1、订单
     2、物流单
     3、生产通知单
     4、发货单
     5、收货单
     6、发票单
     7、收货单+发票单
     */
    private Integer settlementDocuments;

    /**
     * 结算单据名称
     */
    private String settlementDocumentsName;

    /**
     * 付款方式枚举
     1、现金
     2、转账
     3、支票
     4、电汇（T/T）
     5、信汇
     6、银行汇票
     7、银行承兑汇票3个月
     8、银行承兑汇票6个月
     9、D/P付款交单
     10、D/A承兑交单
     11、L/C信用证
     */
    private Integer paymentType;

    /**
     * 付款方式名称
     */
    private String paymentTypeName;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public List<BusinessCategoryDetailQueryVO> getDetails() {
        return details;
    }

    public void setDetails(List<BusinessCategoryDetailQueryVO> details) {
        this.details = details;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getPayTypeName() {
        return payTypeName;
    }

    public void setPayTypeName(String payTypeName) {
        this.payTypeName = payTypeName;
    }

    public Integer getMonth() {
        return month;
    }

    public void setMonth(Integer month) {
        this.month = month;
    }

    public Integer getMonthDay() {
        return monthDay;
    }

    public void setMonthDay(Integer monthDay) {
        this.monthDay = monthDay;
    }

    public Integer getDays() {
        return days;
    }

    public void setDays(Integer days) {
        this.days = days;
    }

    public Integer getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(Integer invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceTypeName() {
        return invoiceTypeName;
    }

    public void setInvoiceTypeName(String invoiceTypeName) {
        this.invoiceTypeName = invoiceTypeName;
    }

    public String getTaxPoint() {
        return taxPoint;
    }

    public void setTaxPoint(String taxPoint) {
        this.taxPoint = taxPoint;
    }
}
